import logging
import logging.handlers

def init_logging(filename,when="midnight",interval=1,backup_count=7):
    # 1.创建日志器对象
    logger=logging.getLogger()

    # 2.设置日志打印级别
    logger.setLevel(logging.DEBUG)

    # 3.创建处理器对象
    # 控制台对象
    st=logging.StreamHandler()
    # 日志文件对象
    fh=logging.handlers.TimedRotatingFileHandler(filename,
                                                 when=when,
                                                 interval=interval,
                                                 backupCount=backup_count,
                                                 encoding="utf-8")

    # 4.日志信息格式
    fmt="%(asctime)s %(levelname)s [%(filename)s(%(funcName)s:%(lineno)s)] - %(message)s"
    formatter=logging.Formatter(fmt)

    # 5.给处理器设置日志信息格式
    st.setFormatter(formatter)
    fh.setFormatter(formatter)

    # 6.给日志器添加处理器
    logger.addHandler(st)
    logger.addHandler(fh)

if __name__ == '__main__':
    # 初始化日志
    init_logging('../a.log', interval=3, backup_count=5)

    # 打印输出日志信息
    # logging.debug('xxxx - debug 日志信息')
    logging.warning('我是一个警告信息')
